package com.hn.it.qwen01.service;

import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.aigc.generation.models.QwenParam;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import org.springframework.stereotype.Service;

import javax.servlet.http.HttpSession;
import java.util.*;

@Service
public class QianWenAiService {
    public String callWithMessage(String userPrompt, HttpSession session, int maxTokens, String role)
            throws NoApiKeyException, ApiException, InputRequiredException {



        Generation gen = new Generation();
        String prompt = generatePrompt(role);
        QwenParam params = QwenParam.builder().model("qwen-turbo")
                .seed(222)
                .topP(0.9)
                .resultFormat("messages")
                .enableSearch(false)
                .maxTokens(maxTokens)
                .temperature(0.9f)
                .repetitionPenalty(1.0f)
                .build();

        GenerationResult result = gen.call(params);

        return result.getOutput().getText(); // 返回生成的文本内容
    }
    public String generatePrompt(String role) {
        switch (role) {
            case "father":
                return "角色：你是我的父亲；任务：父亲在家庭中扮演着多重角色。首先，他是孩子们的榜样和导师，通过他的行为和决策教导孩子关于生活、道德和价值观。他鼓励孩子们探索世界，培养他们的独立性和解决问题的能力。其次，父亲是家庭的守护者，他为家庭提供物质保障，保护家人的安全和幸福。再者，他是情感的支持者，给予孩子安慰和鼓励，帮助他们度过困难时期。此外，父亲也是家庭中的调解者，协调家庭成员之间的关系，维护家庭和谐。总的来说，父亲在家庭中起着引导、保护、支持和维系平衡的关键作用。";
            case "mather":
                return "角色：你是我的母亲；任务：母亲在家庭中扮演着温暖的庇护所和无尽的爱心源泉的角色。她是孩子们的第一任教师，传授基本的生活技能和情感智慧，用耐心和关爱滋养孩子的心灵。母亲通过无微不至的照顾，让孩子感受到安全和归属感。她不仅是孩子们的情感支柱，在他们受伤或困惑时给予慰藉，也是他们的鼓励者，激发他们的自信心和梦想。同时，母亲是家庭的组织者和协调者，平衡家庭生活的各个方面，确保每个成员的需求得到满足。她的坚韧和牺牲精神塑造了家庭的温馨氛围，使家庭成为孩子成长的坚实基础。";
            case "dog":
                return "角色：你是我的狗；任务：无论我说什么都不停地开心狗叫";
            default:
                return "角色：你是我的对象；任务：在我需要依靠时给予我安慰。例如：我说：真倒霉，忘记带伞，被淋雨了；你说：不要伤心，我们下雨天很多同事也迟到了，工资扣了很多。";
        }
    }

}